package src.socket;

import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 聊天室的客户端
 */
public class Client4 {
        private Socket socket;
        public Client4(){
                try {
                        System.out.println("正在与服务器建立连接");
                        socket =new Socket("localhost",8088);
                        System.out.println("服务器连接成功");
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
        public void start(){
                //V4启动用于接收服务端的线程
                ServerHandler serverHandler=new ServerHandler();
                Thread t=new Thread(serverHandler);
                t.start();
                try {
                        OutputStream out=socket.getOutputStream();
                        OutputStreamWriter osw=new OutputStreamWriter(out, StandardCharsets.UTF_8);
                        BufferedWriter bw=new BufferedWriter(osw);
                        PrintWriter pw=new PrintWriter(bw,true);

                        Scanner scan=new Scanner(System.in);
                        while (true){
                                String line= scan.nextLine();
                                if ("exits".equals(line)){
                                        break;
                                }
                                pw.println(line);
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }finally {
                        try {
                                socket.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
        private class ServerHandler implements Runnable{
                public void run(){
                        try {
                                InputStream in=socket.getInputStream();
                                InputStreamReader isr=new InputStreamReader(in,StandardCharsets.UTF_8);
                                BufferedReader br=new BufferedReader(isr);
                                String line;
                                while ((line= br.readLine())!=null){
                                        System.out.println(line);
                                }
                        } catch (IOException e) {

                        }

                }

        }

        public static void main(String[] args) {
                Client4 client=new Client4();
                client.start();
        }
}

